home *** CD-ROM | disk | FTP | other *** search
/ Merciful 1 / Merciful - Disc 1.iso / software / a / asm_one / asm-onev1.25b.dms / in.adf / Release3.1 / Docs3.1.lha / Docs3.0 / V39_Specifications < prev   
Encoding:
Text File  |  1992-09-23  |  28.0 KB  |  777 lines

  1. V39 Specification
  2. ROM and Disk
  3. July 8, 1992
  4. rev 1.7
  5.  
  6.  
  7. (©) Copyright 1992 Commodore-Amiga, Inc.  All Rights Reserved.
  8. Proprietary and Confidential.
  9.    
  10.  
  11. Doc:    rev 1.0   Created February 14, 1992
  12.  
  13. This document contains a description of the modules and programs that have 
  14. changed for Amiga OS V39. For a low-level function specification please 
  15. refer to the Autodocs.
  16.  
  17. Overview
  18.  
  19. Graphics
  20.  
  21.     o    Support new AA modes/features
  22.     o    Double buffering
  23.     o    Retarget sprite and screen/viewport functions
  24.     o    Palette sharing 
  25.     o    Bitmap functions
  26.     o     Interleaved BitMaps
  27.     o    Mode promotion, coercion and selection
  28.     o    RTG compatible RastPort functions.
  29.  
  30. Intuition
  31.     o    Support new AA modes
  32.     o    Double buffering
  33.     o    Support AA graphics functions
  34.     o    Default Busy pointer
  35.     o    support interleaved bitmaps
  36.     o    Attached screens (incl. menu lending)
  37.     o    promotion
  38.     o    support new sprites
  39.     o    Gadget help
  40.     o    Tablet support
  41.     o    NewLook menus
  42.     o    Special gadget relativity and GM_LAYOUT method
  43.  
  44. GadTools
  45.     o    Palette enhancement
  46.     o    ListView enhancement
  47.     o    GT_GetGadgetAttrs() function
  48.     o    Support for Intuition's NewLook menus and Gadget Help.
  49.     o    Many small enhancements
  50.  
  51. BootMenu & Battmem
  52.     o    PAL/NTSC switch
  53.     o    Chip select switch
  54.  
  55.  
  56. Layers
  57.     o    Use new optimized layers
  58.     o    Layerinfo backfill hook
  59.     o    ClipRect traversal
  60.  
  61. Workbench
  62.     o    Use ILBM as backdrop pattern
  63.     o    WB config notification
  64.     o    Path of file in 'Information'
  65.     
  66. Console
  67.     o    fix console not to lock layers for long
  68.     o    Use Mask bit to speed up rendering.
  69.     o     Misc. enhancements and fixes.
  70.  
  71. Clipboard
  72.     o    fix r/w bug with units above unit 0
  73.  
  74. Filesystem
  75.     o    New filesystem with directory blocks.
  76.  
  77. Exec:
  78.     o    System specific changes
  79.     o    Memory pools
  80.     o    Memory handler
  81.     o    Procure/Vacate
  82.     o    Timed out alerts
  83.     o    SAD
  84.  
  85. CIA resource
  86.     o    bump priority to 120
  87.  
  88.  
  89. DOS
  90.     o    Rearrange strings.
  91.  
  92. Preferences
  93.     o    New IPrefs
  94.     o    New WBPattern editor 
  95.     o    New Pointer editor to support AA.
  96.     o    New Palette editor with pen assignments (using the Colorwheel class).
  97.     o    IControl changes (promotion)
  98.     
  99. WB Disks
  100.     o    MultiView
  101.     o    Localization of selected programs
  102.         - DiskSalv
  103.         - PrepCard
  104.         - MultiView
  105.     o    DiskSalv. Disk-repair program
  106.     o    ColorWheel Class: Set of boopsi classes implementing colorwheel color 
  107. selection.
  108.     o    New c: commands to use ASL-file requester and easy-requester from 
  109. scripts .
  110.  
  111.  
  112. Appendix A
  113.  
  114.     New Workbench-disk programs and libraries and their location on the disk set.
  115.  
  116.  
  117. Detailed Specifications
  118.  
  119. The following sections describe in more detail the changes and new features in 
  120. AmigaOS V39
  121.  
  122.  
  123.  
  124. Graphics Specification:
  125.  
  126.  
  127. Philosophy:
  128.  
  129. The original Amiga graphics library exposed many device-dependent details to the 
  130. application programmer. Because of this, introduction of new graphics devices has 
  131. been slowed, and application support for new features has been delayed. To reverse 
  132. this trend, no features have been added to the new graphics system which cannot be 
  133. kept for the future. Thus, when newer graphics systems are introduced, system 
  134. software will need fewer changes, and applications will be ready to automatically use 
  135. new capabilities.  Thus, parameters such as number of bits per pixel, resolution, color 
  136. palette size, etc. are either variable or have been made very large.
  137.  
  138.  
  139.  
  140. Low level functionality
  141.  
  142.  
  143. Graphics copper list generation must be extended to handle loading of  >6 bit plane 
  144. pointers, loading of extended color registers, handling of fetch and scrolling for 32 and 
  145. 64 bit fetch modes, promotion of interlaced modes to 31khz ("flicker-fixing"), promotion 
  146. of non-interlaced modes via scan-doubling, and color palette banking.
  147.  
  148.     
  149.  
  150. Compatibility
  151.  
  152. The AA chips are register level compatible with the old and ECS chips at boot up time. 
  153. However, when new AA modes are enabled and displayed, and a game then takes over 
  154. the screen display without informing the OS of it, some registers may be in incompatible 
  155. settings. Two approaches will reduce this:
  156.  
  157.     (a) old Programs which boot with their own custom boot block (games) will have 
  158. AA features disabled unless they are specifically asked for. This should ensure 
  159. transparent compatibility for all bootable games.
  160.  
  161.     (b) It will be possible to disable AA features for non-compatible programs. This 
  162. will be done via the "BootMenu" which is available at system boot time. New 
  163. options in this menu will allow disabling of AA, disabling of ECS, and switching of 
  164. PAL and NTSC.
  165.  
  166.  
  167.  
  168. Get/Set functions
  169.  
  170. This release of graphics.library will attempt to ease the (future) transition to 
  171. Retargetable Graphics. New functions are provided to do some operations in a more 
  172. device-independent manner. This will help when we have to support foreign graphics 
  173. devices, more than 8 bits per pixel, chunky pixels, and true-color displays.
  174.  
  175. This new calls of "Get/Set" function will allow device independent access to fields in the 
  176. RastPort structure which were only previously manipulable by direct structure access.
  177.  
  178.  
  179.  
  180. Color Map functions
  181.  
  182. The color palette in AA is different in a lot of ways from the ECS one:
  183.  
  184. o    It has 24 bits per entry, plus one bit to select transparency.
  185. o    There are 256 entries which is enough for many programs running on the same 
  186. screen to share the palette.
  187.  
  188. The new color palette functions allow for multiple applications to coordinate their access 
  189. to the palette. This allows applications to, for instance, dynamically remap pictures to 
  190. match the color palette of the workbench screen, display animations in windows, etc.
  191.  
  192. All colors are now specified as 32 bit left-justified fractions, and are truncated based 
  193. upon the number of bits that the hardware is capable of displaying.
  194.  
  195.  
  196. Bitmap functions
  197.  
  198. These function exist because the new AA chips have alignment restrictions in high 
  199. bandwidth modes. Changing InitBitMap and AllocRaster to obey these restrictions 
  200. appears to be very incompatible. Bitmaps created by AllocRaster with a multiple of 32 or 
  201. 64 pixels per line will be compatible with high fetch modes (2x or 4x respectively). 
  202. Incompatible ones will fall back to 1x mode, if 1x mode is capable of displaying the 
  203. screen.
  204.  
  205. AllocBitMap allocates an entire bitmap structure, and the display memory for it. 
  206. AllocBitMap allows you to use more than 8 planes, and also allows you to specify 
  207. another bitmap pointer, thus telling the system to allocate the bitmap to be "like" another 
  208. bitmap. A bitmap allocated in such a matter may be able to blit to this bitmap faster. 
  209. Such a bitmap may be stored in a foreign device's local memory. Do not assume 
  210. anything about the structure of a bitmap allocated in this manner. The size of a bitmap 
  211. structure is subject to change in future graphics releases. Thus, you should use 
  212. AllocBitMap/FreeBitMap for your raster allocation. 
  213.  
  214.  
  215. Sprite functions
  216.  
  217. Graphics sprite functions (MoveSprite) have beene extended to understand large 
  218. sprites, selectable sprite pixel resolution, and movement of scan-doubled sprites. Sprite 
  219. positioning is no longer rounded down to lo-res pixel resolution. Applications will no 
  220. longer have to "know" about the hardware-dependent format of sprite data.
  221.  
  222.     
  223.  
  224. Miscellaneous
  225.  
  226. Some new features have been added, in order to:
  227.  
  228.     o    Improve the programming model.    
  229.     o    Provide new capabilities to applications
  230.     o    More fully take advantage of AA.
  231.  
  232.  
  233. Interleaved screens have been added. These use a different layout of the graphics data 
  234. in order to speed rendering operations and eliminate the annoying "color-flash" problem 
  235. which is the hallmark of planar (as opposed to "chunky") display architectures.
  236.  
  237. Double buffering functions have been added. These allow applications to display very 
  238. smooth, synchronized animation in fully an efficient "intuition-friendly" manner.
  239.  
  240. Support has been added for AA border blanking, sprites in borders, and color palette 
  241. banking. See also the ScrollRasterBF() function.
  242.  
  243. Some operations have been sped up: RectFill() has been rewritten, WritePixel() uses 
  244. the CPU (3x speedup) and other optimizations.
  245.  
  246. Some bugs have been fixed.
  247.  
  248.  
  249.  
  250. Intuition Specification
  251.  
  252. New Graphics Modes
  253.  
  254. Intuition directly supports the new graphics modes, including higher color resolutions 
  255. through Preferences and through SA_Colors32.
  256.  
  257.  
  258. New Sprite Features
  259.  
  260. The pointer code in Intuition has been completely reworked in order to support the new 
  261. AA sprite options, including higher sprite-resolutions, wider sprites, and sprite 
  262. scan-doubling.  This allows the user to have a fine-grain pointer, which looks a lot 
  263. better.  As well, Intuition goes to great lengths to remain compatible with users of other 
  264. sprites.  Intuition pointers are created through a new boopsi class called "pointerclass", 
  265. and set through a new SetWindowPointer() call.  Intuition directly supports a standard 
  266. busy pointer, changeable through Preferences.
  267.  
  268.  
  269. NewLook Menus and Title Bar
  270.  
  271. By adding three additional pens to the DrawInfo pen-array, Intuition now allows control 
  272. over the colors used in rendering menus.  This will allow the black on white menus with 
  273. black trim that the Style Guide recommends.  As well, the screen title bar is rendered to 
  274. match.
  275.  
  276. In addition, the Amiga-key and checkmark symbols that appear in the menus are 
  277. colored accordingly, and are scaled by default to the screen's font.  It is possible to use 
  278. a custom font in a window's menus, and have the checkmark and Amiga-key symbols 
  279. for that window scaled to that font.
  280.  
  281. It is trivial to write compatible applications that come up optimally under all conditions 
  282. (including V37).
  283.  
  284. GadTools recognizes and supports NewLook Menus.
  285.  
  286.  
  287.  
  288. Double-Buffering in Screens
  289.  
  290. Intuition now supports double-buffering in screens, via the new double-buffering calls in 
  291. graphics.library.  It is possible to have menus  and certain kinds of gadgets (in a 
  292. borderless backdrop window) on a double-buffered screen.
  293.  
  294.  
  295.  
  296. Attached Screens
  297.  
  298. Intuition now supports the concept of attached screens.  Screen attachment is done at 
  299. OpenScreen() time through the SA_Parent, SA_FrontChild, and SA_BackChild tags.  
  300. Child screens can be dragged independently of each other and their parent (though 
  301. never above their parent).  Pulling down the parent below its natural top causes the 
  302. child screens to move as well.
  303.  
  304. Whenever an attached screen is depth-arranged by the user or via the old calls, that 
  305. screen's entire family moves as a group.  A new call is provided to allow programmatic 
  306. depth-arrangement of the child screen within its family.
  307.  
  308.  
  309. Gadget Help and Special Gadget Relativity
  310.  
  311. The gadget structure now has an additional rectangle, which is the bounding box.  The 
  312. HelpControl() function can be used to turn on "Gadget Help" for one or more windows.  
  313. When Gadget Help is on, passing the mouse over the bounding box of a gadget having 
  314. the GMORE_GADGETHELP property causes an IDCMP_GADGETHELP message to 
  315. be sent.  IDCMP_GADGETHELP messages are also sent when the mouse is not over 
  316. the window, or is over the window but not over a help-reporting gadget.  There is a 
  317. GM_HELPTEST method which boopsi gadgets can use to refine their sensitivity area or 
  318. to delegate the test to member gadgets.
  319.  
  320. Also, GRELxxx gadgets now use the bounding box to erase themselves, so you can 
  321. now have GREL gadgets whose imagery extends outside of the gadget select box.  As 
  322. well, there is a GM_LAYOUT method which boopsi gadgets can use to do any arbitrary 
  323. layout within their window.
  324.  
  325.  
  326. New Tablet Support
  327.  
  328. Intuition defines a new subclass of input-event which should solve tablet handling quite 
  329. nicely.  Tablet drivers now have an easy time knowing what they should be scaling to.  
  330. In addition, it is now possible for applications to receive extended IntuiMessages that 
  331. can contain such information as pressure, sub-pixel position, etc.  The extra information 
  332. is extensible to cover things we cannot yet foresee.  Boopsi gadgets receive tablet 
  333. information in their GM_GOACTIVE and GM_HANDLEINPUT methods.
  334.  
  335.  
  336. Custom Image Disable-Rendering
  337.  
  338. For a disabled gadget under V37, Intuition always rendered the dot pattern itself.  Under 
  339. V39, an image can set the IA_SupportsDisable attribute to TRUE, and then Intuition will 
  340. let it do its own disabled rendering, through the IDS_DISABLED or the (new) 
  341. IDS_SELECTEDDISABLED image drawing states.  This is transparently compatible 
  342. with V37.
  343.  
  344.  
  345. Promotion
  346.  
  347. Crudely speaking, promotion is de-interlacing in software.  IControl has a "promotion 
  348. option".  This flags instructs Intuition to tell graphics to change the mapping of the 
  349. default monitor.  Database-aware programs will now receive information about the 
  350. double-NTSC (or double-PAL) mode when enquiring about the default monitor.  Of 
  351. course, if the user changes the promotion setting after the application is open, not 
  352. everything it learned from the database will still be true. The new method also means 
  353. that an application can request to never be promoted by asking for explicit NTSC or 
  354. explicit PAL, instead of the default monitor.
  355.  
  356.  
  357. Pen-Sharing
  358.  
  359. Under V39, Graphics supports sharing pens (ObtainPen(), etc.). Intuition now uses and 
  360. supports the graphics.library pen-sharing scheme.  For all screens, pens found in the 
  361. DrawInfo->dri_Pens are obtained as sharable.  For existing public screens, all other 
  362. pens are allocated as exclusive.  For custom screens and aware public screens (those 
  363. that set the new SA_SharePens tag), all other pens are left unallocated.  On the 
  364. Workbench screen, pens 0 to 3 and ~0 to ~3 are also made sharable.
  365.  
  366.  
  367. Interleaved Screens
  368.  
  369. As graphics.library now supports interleaved bitmaps, Intuition makes this feature 
  370. available to screen openers via the SA_Interleaved tag. Currently, the Workbench is 
  371. interleaved, provided IPrefs has run.  For compatibility, it is not interleaved if it opens 
  372. before IPrefs. 
  373.  
  374.  
  375. Coercion and Inter-Screen-Gap
  376.  
  377. Intuition now relies on graphics.library to figure out coerced screen modes, and the 
  378. required inter-screen-gap.  This allows greater inter-mode compatibility, better coercion 
  379. results, and compatibility with future monitors.
  380.  
  381.  
  382. Pens and DrawInfo
  383.  
  384. The new SA_LikeWorkbench tag gives you a screen just like the Workbench.  This was 
  385. basically a consequence of getting pens settable through preferences while keeping 
  386. NewLook menus on the Workbench screen.
  387.  
  388. When the SA_Pens pen-array is evaluated, pens are masked to the number of available 
  389. colors.  As well, special definitions of pen-number (PEN_C3, PEN_C2, PEN_C1, and 
  390. PEN_C0) mean the complementary pen numbers of pens 0 to 3.
  391.  
  392. Preferences now listens to only 8 colors for the bitmap, which Intuition will set as the 
  393. first four and the last four colors of the Workbench or any "Workbench-like" screen 
  394. (those having the SA_FullPalette or SA_LikeWorkbench attributes).
  395.  
  396. The way the DrawInfo pens are determined is Intuition picks a default pen-array.  Then, 
  397. any pens you supply with SA_Pens override the defaults, up until the ~0 in your array.  
  398. If the screen is monochrome or old-look, the default will be the standard two-color pens.  
  399. If the screen is two or more planes deep, the default will be the standard four-color 
  400. pens, which now include the new-look menu colors.
  401.  
  402. If the screen has the SA_LikeWorkbench property, the default will be the user's 
  403. preferred pen-array, changeable through preferences.  There is a preferred pen-array 
  404. for four colors, and one for eight or more colors.
  405.  
  406.  
  407. Miscellaneous Window Features
  408.  
  409. If a window is not front-most, but nevertheless is unobscured, then clicking on its depth 
  410. gadget used to bring it to front, which had no visual effect.  It now depth-arranges 
  411. correctly (i.e.  to back).
  412.  
  413. An application can now request to hear an IDCMP_CHANGEWINDOW message when 
  414. its window is depth-arranged.
  415.  
  416. Size-only zooming (where the window top-left corner is preserved) is now supported.
  417.  
  418.  
  419. Miscellaneous Screen Features
  420.  
  421. Screens may now be made non-draggable.  Screens can be designated as exclusive, 
  422. meaning they will never share the display with another screen.  The SA_BackFill tag 
  423. can be used to specify a backfill hook for the screen's LayerInfo.  Is it now possible to 
  424. control the SA_Pens or other previously unavailable attributes of the Workbench 
  425. screen. This will allow things such as light-on-dark text.  Screens can have interleaved 
  426. bitmaps.  There are new universal screen movement and depth-arrangement functions.  
  427. Intuition now supports scrollable 2024/Moniterm screens.
  428.  
  429. Screen depth is always validated.  Making a request for a screen too deep causes 
  430. failure with OSERR_TOODEEP.
  431.  
  432. All pre-V39 functions that depth-arranged screens, and all Intuition's own invocations 
  433. (including Amiga-M/N processing and screen depth-gadget processing) go through the 
  434. new ScreenDepth() LVO.
  435.  
  436.  
  437. Miscellaneous
  438.  
  439. The DoGadgetMethodA() function allows you to invoke a method on a gadget, which 
  440. will then receive a valid GadgetInfo pointer.
  441.  
  442. The boopsi image class "frameiclass" supports the standard border types (eg.  bevelled 
  443. box, string-gadget ridge, "moat", AppWindow icon drop-box).
  444.  
  445. Intuition now notices and repairs damage when boopsi gadgets use ScrollRaster().  
  446. (Such damage occurs when the gadget is in a simple-refresh window and part of the 
  447. scrolled area is obscured). Such gadgets MUST set GMORE_SCROLLRASTER in 
  448. order to benefit from this magic repair feature.  (Note that 
  449. ScrollWindowRaster() is for
  450. applications.  Boopsi gadgets ought to use ScrollRaster() or ScrollRasterBF()).
  451.  
  452. Alerts can be set to time-out automatically, via TimedDisplayAlert().
  453.  
  454.  
  455.  
  456. Speed Improvements
  457.  
  458. When a window opens active, its border is rendered only once, not twice.  This looks 
  459. better and is faster.
  460.  
  461. EasyRequests and AutoRequests now put their imagery and gadgets directly in their 
  462. window, instead of also using a requester.  This saves memory, and is faster.
  463.  
  464. Intuition can now recognize and suppress certain extraneous window refresh events.
  465.  
  466. The rubber-band frame when moving or dragging windows is now drawn faster.
  467.  
  468. Several other speed optimizations were taken.
  469.  
  470.  
  471.  
  472. GadTools specification
  473.  
  474. For V39, work has been done to GadTools to address new Intuition features, to add 
  475. some important features missing from V37 GadTools,   and to fix a few bugs.  The key 
  476. changes are:
  477.  
  478.       - A "get gadget attributes" function
  479.       - Support for Intuition's NewLook menus
  480.       - Support for Intuition's new Gadget Help feature
  481.     - The ListView gadget has been completely rewritten
  482.        - Many enhancements to the different kinds of gadget, including a complete 
  483. re-write of PALETTE_KIND, support for proportional fonts in the slider level 
  484. display, as well as scalable checkmark and radio button imagery.
  485.  
  486.  
  487.  
  488. BootMenu & Battmem:
  489.  
  490. Bootmenu has been enhanced with support for selection of default video mode (PAL or 
  491. NTSC) and selection of default chipset.
  492.  
  493. Bootmenu will switch between PAL and NTSC when a key on the keyboard is pressed 
  494. (except certain special purpose keys like SHIFT, ALT etc).
  495.  
  496. Chip selection offers the following choices:
  497.  
  498.     - Original    [ the original pre ECS chipset]
  499.     - ECS
  500.     - Best
  501.  
  502. 'Best' means that the system will boot into the 'AA' on a AA system, ECS on an ECS 
  503. system etc. 
  504.  
  505. Setting can be saved to battmem or used without saving.
  506.  
  507.  
  508.  
  509. Layers specification:
  510.  
  511. Layers has been reworked from the inside and now sports optimized cliprect generation 
  512. and optimal dedicing.  It also has reduced the number of times layers will blit to the 
  513. display such that each display pixel is only rendered once whenever possible.  In 
  514. addition, the general cliprect traversal routine has been enhanced to provide a faster 
  515. and more supportable method for graphics (and others) to render into layers.
  516.  
  517. As a side effect, it seems that there are two programs (WHAP and a terminal program) 
  518. that can leave junk on the display.  This is due to the fact that they play silly games with 
  519. rastports and the new minimal rendering ends up not double-clearing the area.
  520.  
  521. A LayerInfo backfill hook feature has been added to the system too.
  522.  
  523. The new optimized layers.library is used in V39. Layers has been further enhanced by 
  524. adding ClipRect traversal and support for Layerinfo backfill hook
  525.  
  526.  
  527.  
  528. Workbench specification:
  529.  
  530. In addition to a more consistent handling of preferences via IPrefs, Workbench now can 
  531. take patterns of arbitrary size, which means that full pictures can be used as 
  532. backgrounds in Workbench windows.
  533.  
  534. Workbench's Information window now displays the path to the icon in question and is 
  535. fully asynchronous.  This means that you can have any number of Information windows 
  536. open at the same time and still use Workbench.
  537.  
  538. Other little changes include the prop gadgets and the fact that copying icons now clone 
  539. the date and About now has the "?" as a keyboard shortcut to match style guide.
  540.  
  541.  
  542.  
  543. Exec specification:
  544.  
  545. In addition to a number of bug fixes in the semaphore code, semaphores now also have 
  546. asynchronous obtain methods (known as Procure() and Vacate())  These functions 
  547. existed before but never worked.  Now they are able to use SignalSemaphore 
  548. structures just like ObtainSemaphore() and can be use interchangably with the 
  549. Obtain/Release semaphore functions.
  550.  
  551. Also, in an attempt to help make dynamic system resource operations more possible, 
  552. the low memory handler system has been added.  This system lets an application 
  553. register to get called when a memory allocation would need to fail in order that it may be 
  554. able to release enough memory to satisfy the allocation.  This means that RAMLIB no 
  555. longer SetFunction()s the memory allocation routine but is just a simple handler on the 
  556. list.  It also means that memory allocation is now faster by a few (many) cycles.
  557.  
  558. High-performance, low-overhead private memory pools have been added to EXEC.  
  559. This is a system in which memory allocations are pooled together to help reduce the 
  560. fragmentation of system memory, improve allocation speed, and make allocation 
  561. tracking much simpler.  With memory pools, you can allocate just like with AllocMem() 
  562. and then just delete the whole pool in one call.  The memory pools are designed to be 
  563. very fast with as little overhead as possible.
  564.  
  565. Timed-out alerts - one of the most asked for features, have been added.  This means 
  566. that alerts will now go away after a while.  It also means that you can set the time-out to 
  567. 0 and have the alert never show up.  (Basically, just the ticket if you want to run a 
  568. simple unmanned system)
  569.  
  570. SAD - The Simple Amiga Debugging Kernel is a powerful core set of features that will 
  571. let you do remote debugging.  This kernel replaces the ROMWack kernel.  
  572. Documentation for SAD is in the EXEC autodocs.  SAD is also timed such that if 
  573. something causes SAD to start and no one is listening, SAD will exit and thus let the 
  574. system continue.
  575.  
  576.  
  577.  
  578. Console specification
  579.     - AA scrolling optimizations
  580.     - AA change in EOR cursor logic
  581.     - Fix CMD_CLEAR
  582.     - Research a command to specify new defaults for ESC[0m.  This would allow 
  583. programs which send ESC[0m not to change the users preferred defaults - a 
  584. nice thing for many of our programs which run from the Shell, and insist on 
  585. resetting my preferred SGR settings.  
  586.     - Cursor & highlighting only use colors 0-3 in screens which support color sharing 
  587. (e.g., WB).
  588.  
  589.  
  590.  
  591. Clipboard.device specification:
  592.  
  593. Fix units 1-255 multi R/W handling.
  594.  
  595.  
  596. Filesystem specification
  597.  
  598. A new filesystem type (option) has been added: Directory Caching. This caches all the 
  599. information normally returned by ExNext/ExAll in a series of blocks attached to each 
  600. directory.  These blocks normally hold 15 entries; the actual number can range from 3 to 
  601. 20 for 512-byte blocks.
  602.  
  603. These blocks allow ExNext/ExAll to do drastically less disk access. Roughly, this makes 
  604. floppies almost as fast as hard disks under 2.04, and harddisks almost as fast as the 
  605. ramdisk.  This is dramatically noticeable to users, especially floppy-based users.
  606.  
  607. There is a slowdown in file-creation (about 30% on harddisks), some slowdown on 
  608. delete and on close of a modified file due to the need to update these caches.  Also, 
  609. validation, if needed, may take slightly longer since it must validate all the directory 
  610. caches.  These caches do add to the ability of disk-repair utilities to rebuild the directory 
  611. structure of a trashed disk, though, or rebuild trashed fileheader blocks.
  612.  
  613. The code cost is about 2-2.5K.  Also, in the process of doing these modifications, 
  614. several nasty holes from 2.04 (and before) were fixed.  These include the 
  615. multiple-files-of-the-same-name bug, and a bug not seen experimentally where a 
  616. rename of a file and a delete of the previous file in that hash chain could collide, losing 
  617. entire strings of files (or in rename versus rename, entire strings of files could be moved 
  618. to the wrong directory). All modification of directory structures is now locked behind 
  619. co-routine semaphores, so no holes like this should show up again.
  620.  
  621. Various other bug fixes are being done as required.
  622.  
  623.  
  624.  
  625. CIA resource specification:
  626.  
  627. Bump priority to 120
  628.  
  629.  
  630.  
  631. DOS specification:
  632.  
  633. Rearrange strings to avoid using concatenation.
  634.  
  635.  
  636. Preferences specification:
  637.  
  638. Prefs/Pointer
  639.  
  640. Changes are required for AA sprite support. This includes larger sprites with varying 
  641. resolutions and number of colors. Another needed change is to support editing of the 
  642. default busy pointer.
  643.  
  644. Prefs/Palette
  645.  
  646. With 3.0's pen sharing abilities, a different more abstract color model must be available 
  647. to users. Palette Prefs will gain a pen editing ability which will let the user associate 
  648. arbitrary RGB values to any of Intuition's logical pens. So for example, the user will be 
  649. able to specify which RGB value should be used for his text, background, window 
  650. border, etc...
  651.  
  652. Prefs/WBPattern
  653.  
  654. Must learn to deal with more complex patterns. This will be done in a manner similar to 
  655. the current Sound preferences in that a user can just enter the name of a picture to 
  656. display as Workbench pattern.
  657.  
  658. Prefs/IControl
  659.  
  660. A few checkboxes need to be added to enable control of Promotion.
  661.  
  662. C/IPrefs
  663.  
  664. Needs to adapt to the new extended Workbench pattern ability. It must load an ILBM file 
  665. and pass the result on to Workbench. Operations can be done on the graphics before 
  666. displaying it such as color remapping.
  667.  
  668. Needs to adapt to the new way Workbench expects to hear about changes to Font and 
  669. Locale preferences.
  670.  
  671. WB disk (tools, utilities etc. ) specification
  672.  
  673.  
  674. Tools/DiskSalv
  675.  
  676. New program to repair and recover hard drives.
  677.  
  678.  
  679. Utilities/MultiView
  680.  
  681. This is a object-oriented data viewer that uses the datatypes.library for its object 
  682. handling.  Any type of data file can be viewed using this viewer, as long as class for the 
  683. data type is available.
  684.  
  685. Objects can be viewed on the Workbench screen, any public screen, or a custom 
  686. screen (for HAM pictures for example).
  687.  
  688. Classes that will be shipped will be:
  689.  
  690.   ANSI -     Used to view any text document that Utilities/More could have viewed, 
  691. including decoding of ANSI escape sequences.
  692.  
  693.   ILBM -     Used to view Amiga ILBM pictures.  Includes the ability to remap a picture 
  694. to the current palette (uses new graphic functions to obtain pens, plus does 
  695. simple dithering).
  696.  
  697.   AmigaGuide - Used to browse through AmigaGuide documents.  This is backwards 
  698. compatible with the existing AmigaGuide.  There have been a number of small 
  699. enhancements, such as; proportional font support, word wrap, and text attributes 
  700. (bold, italic, and underline).
  701.  
  702.  
  703. Storage/Monitors
  704.  
  705. New monitors for AA support
  706.  
  707.  
  708. Localization
  709.  
  710. Localize the following applications:
  711.     - DiskSalv
  712.     - PrepCard
  713.     - MultiView
  714.     - misc new strings in updated preferences programs.
  715.     - new non-concatenated DOS strings.
  716.  
  717.     
  718. Tools/Commodities/MouseBlanker
  719.  
  720. A new mouse blanking commodity that shuts off the mouse pointer whenever the user 
  721. types on the keyboard.
  722.  
  723.  
  724.  
  725. Appendix A
  726.  
  727. Workbench 3.0 Disk-changes (layout)
  728.  
  729.  
  730. program                Change
  731.  
  732. C/#?                - Misc. bug fixes
  733. C/AddDataTypes            - New
  734. C/IPrefs            - pointer, palette, and wbpattern changes
  735. C/RequestChoice            - New
  736. C/RequestFile            - New
  737. Classes/amigaguide.class     - New
  738. Classes/ascii.class        - New
  739. Classes/colorwhell.class    - New
  740. Classes/floatstring.class    - New
  741. Classes/ilbm.class        - New
  742. Classes/picture.class        - New
  743. Classes/text.class        - New
  744. Devs/DataTypes/AmigaGuide    - New
  745. Devs/DataTypes/FTXT        - New
  746. Devs/DataTypes/ILBM        - New
  747. Devs/printer.device        - HAM-8 support
  748. L/FastFileSystem        - DCFS version
  749. Libs/amigaguide.library        - New
  750. Libs/datatypes.library        - New
  751. Libs/iffparse.library        - Optimization
  752. Locale/Catalogs/#?        - Updated translations
  753. Prefs/Palette            - Color wheel
  754. Prefs/Pointer            - AA support
  755. Prefs/WBPattern            - WB backdrop support
  756. Storage/Monitors/A2024        - 3.0 ROM support
  757. Storage/Monitors/DoubleNTSC    - New
  758. Storage/Monitors/DoublePAL    - New
  759. System/Format            - DCFS support
  760. Tools/Commodities/MouseBlanker    - New
  761. Tools/DiskSalv            - New
  762. Tools/HDToolBox            - UI overhaul
  763. Utilities/MultiView        - New
  764.  
  765.  
  766.  
  767.  
  768.  
  769.  
  770.  
  771.  
  772.  
  773.  
  774.  
  775.  
  776.  
  777.